package com.shaozj.online.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.shaozj.core.base.BaseEntity;
import lombok.Data;

/**
 *  模型字段（MetaField）
 *  表示某个模型下的字段定义（元数据），平台通过该表来控制字段是高频还是扩展列字段
 *  字段类型、是否为关联类型等信息。
 */
@Data
@TableName(value ="t_meta_field")
public class MetaField extends BaseEntity {
    /**
     * ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 指向 meta_model 表（字段属于哪个模型）
     */
    private Long modelId;

    /**
     * 字段逻辑名（在表单 / 查询 / UI 中显示 或 引用）
     */
    private String fieldName;

    /**
     * 字段类型（STRING、INT、BOOLEAN、DATE、RELATION）
     */
    private String fieldType;

    /**
     * 是否为高频字段（若为 true，平台可能把它无华为真实表列以优化查询）
     */
    private Boolean isHighFreq = false;

    /**
     * 当 fieldType 为 RELATION（关联）时，refModelId指向被关联的模型 ID
     */
    private Long refModelId;

    /**
     * 逻辑删除标识(1:已删除;0:未删除)
     */
    private Integer deleted;
}
